var jsonProduct ;
var jsonSkus;
var selectedOptionIdArray = new Array();  //数组，用于保存已经选择的规格id
var optionSize = 0;         //需要选择的规格个数
var currProductSku = null;   //当前货品
var basicImageSrc = null; //商品图片(原本，如果单品没有上传图片则显示)



//查看中图 event.data.imageSrc 为图路径
function viewMiddleImage(event){
	var imageSrc = event.data.imageSrc;
	var index = imageSrc.lastIndexOf(".");
	var url = imageSrc.substring(0,index)+"_m0"+imageSrc.substring(index);
	$('middleImage').src = url;
	$j('#bigImageLink').attr("href",imageSrc);
	return false;
	
}

//告诉朋友
function tellFirends(){
	var flag = copyToClipboard(__FMT.productDetail_referToFriend+$('productNameSpan').innerHTML+"("+window.location+")");
	if(flag){
		alert(__FMT.productDetail_referToFriend_tip);
	}	
}
//显示分享给好友弹出对话框 (不能放在弹出层中，间接改变visibility和position来实现)
function toggleTellFriendDialog(linkDOM){
	if( $j('#tell_friend').hasClass("hidden2")){
		$('tellFriendsTextarea').value= __FMT.productDetail_referToFriend+$('productNameSpan').innerHTML+"("+window.location+")";
		$j('#tell_friend').removeClass("hidden2");
		$j(linkDOM).removeClass("arr_down").addClass("arr_up");
	}else{
		$j('#tell_friend').addClass("hidden2");
		$j(linkDOM).removeClass("arr_up").addClass("arr_down");
	}	
	
}
//关闭分享给好友弹出对话框
function closeTellFriendDialog(){
	$j('#tell_friend').addClass("hidden2");
	$j('#tellFirendAction').removeClass("arr_up").addClass("arr_down");
}

//初始化剪贴板
var　clip = null;
function initClipboard() {
	//url访问地址
	//ZeroClipboard.setMoviePath("http://192.168.16.29:20080/StoreFront/scripts/probiz/other/zeroclipboard/ZeroClipboard.swf");
	ZeroClipboard.setMoviePath( "http://"+window.location.host+__ctxPath+"/scripts/plugins/zeroclipboard/ZeroClipboard.swf" );
	clip = new ZeroClipboard.Client();
	clip.setHandCursor( true );
	clip.addEventListener( "mouseOver", function(client) {
		clip.setText($('tellFriendsTextarea').value); 
	});
	clip.addEventListener('complete', function (client, text) {
		alert(__FMT.productDetail_button_copyToClipBoard_tip);
		closeTellFriendDialog();
	});
	clip.glue( 'd_clip_button', 'tell_friend' );
	
}
		
//复制到剪贴板
function copyToClipboard(txt) {    
     if(window.clipboardData) {    
             window.clipboardData.clearData();    
             window.clipboardData.setData("Text", txt);    
     } else if(navigator.userAgent.indexOf("Opera") != -1) {    
          window.location = txt;    
     } else if (window.netscape) {    
          try {    
              netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");    
              var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);    
	          if (!clip)    
	               return;    
	          var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);    
	          if (!trans)    
	               return;    
	          trans.addDataFlavor('text/unicode');    
	          var str = new Object();    
	          var len = new Object();    
	          var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);    
	          var copytext = txt;    
	          str.data = copytext;    
	          trans.setTransferData("text/unicode",str,copytext.length*2);    
	          var clipid = Components.interfaces.nsIClipboard;    
	          if (!clip)    
	               return false;    
	          clip.setData(trans,null,clipid.kGlobalClipboard);    
          } catch (e) {    
               alert("您的firefox安全限制限制您进行剪贴板操作，请打开’about:config’将signed.applets.codebase_principal_support’设置为true’之后重试。");    
               return false;
          }    
          
     }    
     return true;
}   

/****************************************
切换规格值的已选择和可选择状态

*****************************************/
function toggleSkuOptionValue(){
	jThis = $j(this);
	if(isDisabledOfSkuOptionValue(jThis))return;  //处于不可选状态的规格值不做任何操作
	
	
	if(isEnableOfSkuOptionValue(jThis)){
		//-------------start:处理自身------------------------------------------
		selectSkuOptionValue(jThis);
		$j('#selectedText'+jThis.attr("optionindex")).attr("hasSelected","true").html(__FMT.productDetail_selected+':<b>'+jThis.find("a").attr("title")+'</b>');
		selectedOptionIdArray[jThis.attr("optionindex")] = jThis.attr("valueid");
		//-------------end:  处理自身------------------------------------------
		
		//-------------start:将其他所有的同规格且处于已选状态的规格值置为可选状态-----------
		jAllOptionValues = $j('#skuOptionArea li[id^="skuOptionValue"]');
		jAllOptionValues.each(function(){
			if(isSelectedOfSkuOptionValue($j(this)) && ($j(this).attr("id") != jThis.attr("id")) && ($j(this).attr("optionindex") == jThis.attr("optionindex"))){
				enableSkuOptionValue($j(this));
			}
		});
		//-------------end:  将其他所有的同规格且处于已选状态的规格值置为可选状态-----------
		
		
		
	}else if(isSelectedOfSkuOptionValue(jThis)){
		//-------------start:处理自身------------------------------------------
		enableSkuOptionValue(jThis);
		$j('#selectedText'+jThis.attr("optionindex")).attr("hasSelected","false").empty();
		selectedOptionIdArray[jThis.attr("optionindex")] = "";
		//-------------end:  处理自身------------------------------------------
	}
	jAllOptionValues = $j('#skuOptionArea li[id^="skuOptionValue"]');
	
	
	//-------------start:将其他所有规格值置为不可选状态-----------
	jAllOptionValues.each(function(){
		if(isEnableOfSkuOptionValue($j(this))){
			disableSkuOptionValue($j(this));
		}
	});	
	//-------------end:  将其他所有规格值置为不可选状态-----------
	
	
	//-------------start:将可以选择的规格值重新置为可选状态---------------------
	for(var i=0; i<jsonSkus.length; i=i+1){
		//判断某单品是否可选的方法：分别逐个比对已选择的规格的值和该单品的规格对应的值，如果前者为空或者前后者相等，那么该单品“可选”
		var flag=true;
		for(var j=0;j<selectedOptionIdArray.length;j=j+1){
			if(selectedOptionIdArray[j]!=undefined && selectedOptionIdArray[j]!="" && selectedOptionIdArray[j]!=jsonSkus[i].skuOptionAndValueArray[j].skuOptionValueId){
				flag = false;
				break;
			}
		}
		if(flag){
			for(var j=0; j<jsonSkus[i].skuOptionAndValueArray.length;j=j+1){
				var jSkuOptionValue = $j('#skuOptionValue'+jsonSkus[i].skuOptionAndValueArray[j].skuOptionValueId);
				if(isDisabledOfSkuOptionValue(jSkuOptionValue)){
					enableSkuOptionValue(jSkuOptionValue);
				}
			}
		}
	}
	//-------------end:  将可以选择的规格值重新置为可选状态---------------------
	
	
	//---思路：对已选择的规格作一个不选假设，看同规格的值哪些是可以选择的
	for(var l=0;l<selectedOptionIdArray.length;l=l+1){
		//-------------start:构造一个虚拟的已选择项序列-------------------
		var virSelectedOptionIdArray = new Array();
		for(var m=0;m<selectedOptionIdArray.length;m=m+1){
			virSelectedOptionIdArray[m] = selectedOptionIdArray[m];
		}
		virSelectedOptionIdArray[l] = "";
		//-------------end:构造一个虚拟的已选择项序列-------------------
		
		//-------------start:将可以选择的同规格的规格值重新置为可选状态---------------------
		for(var i=0; i<jsonSkus.length; i=i+1){
			var flag=true;
			for(var j=0;j<virSelectedOptionIdArray.length;j=j+1){
				if(virSelectedOptionIdArray[j]!=undefined && virSelectedOptionIdArray[j]!="" && virSelectedOptionIdArray[j]!=jsonSkus[i].skuOptionAndValueArray[j].skuOptionValueId){
					flag = false;
					break;
				}
			}
			if(flag){
				for(var j=0; j<jsonSkus[i].skuOptionAndValueArray.length;j=j+1){
					var jSkuOptionValue = $j('#skuOptionValue'+jsonSkus[i].skuOptionAndValueArray[j].skuOptionValueId);
					//注意：jSkuOptionValue.attr("optionindex") == l 必须是已选择规格的
					if(isDisabledOfSkuOptionValue(jSkuOptionValue) && (jSkuOptionValue.attr("optionindex") == l)){
						enableSkuOptionValue(jSkuOptionValue);
					}
				}
			}
		}
		//-------------end:  将可以选择的同规格的规格值重新置为可选状态---------------------
		
	}
	
	//-------------start:特别的，如果目前选择的规格只有一个，那么就将同规格的其他值全部置为可选状态-----------
	if(getLengthOfSelectedOptionIdArray()==1){
		var selectedOptionId = null;
		for(var i=0;i<selectedOptionIdArray.length;i++){
			if(selectedOptionIdArray[i]!=""){
				selectedOptionId = selectedOptionIdArray[i];
			}
		}
		var jSkuOptionValue = getJSkuOptionValueByValueId(selectedOptionId);	//已选择的值		
		jAllOptionValues.each(function(){
			if(($j(this).attr("id") != jSkuOptionValue.attr("id")) && ($j(this).attr("optionindex") == jSkuOptionValue.attr("optionindex"))){
				enableSkuOptionValue($j(this));
			}
		});
	}
	//-------------end:特别的，如果目前选择的规格只有一个，那么就将将同规格的其他值全部置为可选状态-----------
	
	
	
	//-------------start:如果全部已选，则改变Sku------------------------------
	var currSku = getSelectedProductSku();
	if(null != currSku){
		changeCurrentSku(currSku);
	}else{
		currProductSku = null;
	}
	//-------------end:  如果全部已选，则改变Sku------------------------------
}
//获得已选择的规格的个数
function getLengthOfSelectedOptionIdArray(){
	var length = 0;
	for(var i=0; i< selectedOptionIdArray.length; i++){
		if(selectedOptionIdArray[i]!=""){
			length++;
		}
	}
	return length;
}
//根据vauleId获得规格值jquery对象
function getJSkuOptionValueByValueId(valueId){
	return $j('#skuOptionValue'+valueId);
}

//将规格值设为已选择状态 jSkuOptionValue是规格值的页面DOM的jquery对象
function selectSkuOptionValue(jSkuOptionValue){
	jSkuOptionValue.addClass("curr").append("<i></i>");
	
}

//将规格值设为可选择状态
function enableSkuOptionValue(jSkuOptionValue){
	jSkuOptionValue.removeClass("disabled").removeClass("curr").find('i').remove();
}

//将规格值设为不可选择状态 
function disableSkuOptionValue(jSkuOptionValue){
	jSkuOptionValue.addClass("disabled").find('i').remove();
}
//判断规格值是否处于已选择状态
function isSelectedOfSkuOptionValue(jSkuOptionValue){
	return jSkuOptionValue.hasClass("curr");
}

//判断规格值是否处于可选择状态
function isEnableOfSkuOptionValue(jSkuOptionValue){
	return !(jSkuOptionValue.hasClass("curr") |  jSkuOptionValue.hasClass("disabled"));
}
//判断规格值是否处于不可选择状态
function isDisabledOfSkuOptionValue(jSkuOptionValue){
	return jSkuOptionValue.hasClass("disabled");
}
//判断是否已经对规格已选择完全
function isAllOptionSelected(){
	for(var i =0; i< optionSize; i=i+1){
		if(selectedOptionIdArray[i] == ""){
			return false;
		}
	}
	return true;
}
//获得当前选择的单品
function getSelectedProductSku(){
	for(var i=0; i<jsonSkus.length; i=i+1){
		//判断某单品是否可选的方法：分别逐个比对已选择的规格的值和该单品的规格对应的值，如果前者为空或者前后者相等，那么该单品“可选”
		var flag=true;
		for(var j=0;j<optionSize;j=j+1){
			if(selectedOptionIdArray[j]!=jsonSkus[i].skuOptionAndValueArray[j].skuOptionValueId){
				flag = false;
				break;
			}
		}
		if(flag){
			return jsonSkus[i];
		}
	}
	return null;
	
}
//改变单品显示 currSku是一个json对象
function changeCurrentSku(currSku){
	currProductSku = currSku;
	if(currSku.imageUrl!=null && currSku.imageUrl!=""){
		viewMiddleImage({data:{"imageSrc":__mediaPath+currSku.imageUrl}});
	}else{
		if(basicImageSrc!=null && basicImageSrc!=""){
			viewMiddleImage({data:{"imageSrc":__mediaPath+basicImageSrc}});
		}else{
			viewMiddleImage({data:{"imageSrc":__defaultImage}});
		}	
	}	
	$j('#productSkuCodeSpan').html(currSku.productSkuCode);
	$j('#priceArea').load(__ctxPath+"/prod-/item-/blank.html?doAction=renderProductSkuPrice&productSkuId="+currSku.productSkuId);
	$j('#productSkuId').val(currSku.productSkuId);
	if(currSku.weight!=null && currSku.weight!=""){
		$j('#weightDl').show();
		$j('#weightSpan').html(currSku.weight);
	}else{
		$j('#weightDl').hide();
		$j('#weightSpan').html("");
	}
	
	var availableQuantityHtml = '';
	if(currSku.availableQuantity != null && currSku.availableQuantity > 0){
		availableQuantityHtml += '('+__FMT.productDetail_inventory_availableQuantity+':';
		availableQuantityHtml += currSku.availableQuantity + ')';
	}else if(currSku.availableQuantity != null && currSku.availableQuantity <= 0){
		availableQuantityHtml += '<span class="red">'+__FMT.productDetail_inventory_lackStock+'</span>';
	}
	$j('#availableQuantity').empty().html(availableQuantityHtml);
}

function fnGetSelectedCheckBoxValues(checkBoxName){
	var accessoriesCodes=new Array();
	var temp_checkBoxInputs=document.getElementsByName(checkBoxName);
	if(temp_checkBoxInputs){
		for(var i=0;i<temp_checkBoxInputs.length;i++){
			if(temp_checkBoxInputs[i].checked){
				accessoriesCodes.push(temp_checkBoxInputs[i].value);
			}
		}
	}
	return accessoriesCodes.join(",");
}


//判断输入值是否整数
function validateIntAndMax(str){
	var re = new RegExp("^[\\d,]*$");
	return (re.test(str) && (parseFloat(str) <= parseFloat(99999))); 
}

//验证函数
function validateAction(){
	if(currProductSku == null){
		var jUnSelectedOption = $j('div.selected[id^="selectedText"][hasSelected="false"]');
		var msg ="";
		for(var i=0; i<jUnSelectedOption.length; i++){
			msg += '"'+$j(jUnSelectedOption[i]).attr("optionName")+'"';
			if(i!=jUnSelectedOption.length-1)msg += ',';
		}
		alert(__FMT.productDetail_selectSkuFirst+msg+"。");
		return false;
	}
	var quantity = $('quantity').value+"";
	if(quantity.trim() == ""){
		alert(__FMT.productDetail_buyCount_notEmpty);
		$('quantity').value="";
		$('quantity').focus();
		return false;
	}
	if(!validateIntAndMax(quantity)){
		alert(__FMT.productDetail_buyCount_integer);
		$('quantity').value="";
		$('quantity').focus();
		return false;
	}
	if(parseInt(quantity)<jsonProduct.minOrderQuantity){
		alert(__FMT.productDetail_buyCount_notLtMinOrderQuantity+"("+jsonProduct.minOrderQuantity+")");
		$('quantity').value = "";
		$('quantity').focus();
		return false;
	}
	
	return true;
}






